jjzjj

java - 需要在多线程环境中实现 ArrayList 的傻瓜式同步

全部标签

ruby-on-rails - Websocket-rails 不适用于 Nginx 和 Unicorn 的生产环境

我有带有gemwebsocket-rails0.7的Rails3.2应用程序。在开发机上,一切正常在生产环境中,我使用Nginx/1.6作为代理服务器,Unicorn作为http服务器。Thin用于独立模式(在https://github.com/websocket-rails/websocket-rails/wiki/Standalone-Server-Mode之后)。nginx配置:location/websocket{proxy_passhttp://localhost:3001/websocket;proxy_http_version1.1;proxy_set_headerUp

ruby - Ruby 中的工作线程

我正在使用ruby​​+qt编写一个简单的内存游戏(试图暂时摆脱c++...)为了允许X秒超时来查看两个打开的部分,我需要计时器或在后台线程中完成工作。在不重新发明轮子的情况下实现这一点的最简单方法是什么?ruby线程?Qt线程?Qt定时器? 最佳答案 我不知道这是否是最好的解决方案,但是:block=Proc.new{Thread.pass}timer=Qt::Timer.new(window)invoke=Qt::BlockInvocation.new(timer,block,"invoke()")Qt::Object.conn

ruby-on-rails - rake spec 不使用 rails 环境

我正在尝试在刚刚升级到Rails2.3.2的Rails项目中使用rspec。我在应用程序中安装了rspec1.2.6和rspec-rails1.2.6作为插件。我的问题是规范无法访问我的应用程序类或任何Rails标准库。首先,我必须使用来自RAILS_ROOT的完整路径来指定我想要测试的模型类,但现在当它加载类时,我得到以下信息/app/models/person.rb:1:uninitializedconstantActiveRecord(NameError)from./spec/models/person_spec.rb:1:in`require'from./spec/models

ruby - 如何在 ruby​​ 中实现 curry(部分函数)

我需要一些在ruby​​(1.8.6或1.8.7而不是1.9)中实现curry函数的示例。 最佳答案 下面是如何用block而不是方法来柯里化(Currying):defcurry(&block)arity=(block.arity>=0)?block.arity:-(block.arity+1)#returnanimmediatevalueiftheblockhasonereturnblock[]ifarity==0#otherwise,curryitargumentbyargumentargs=[]innermost=lambd

Ruby 1.9 线程池

据我所知,Ruby1.9使用OS线程,但实际上只有一个线程仍会并发运行(尽管一个线程可能正在执行阻塞IO而另一个线程正在执行处理)。我见过的线程示例只是使用Thread.new来启动一个新线程。由于具有Java背景,我通常使用线程池来避免启动许多新线程,因为它们是“重量级的”。Ruby中是否内置了线程池结构?我没有在默认语言库中看到一个。或者是否有通常使用的标准gem?由于操作系统级线程是ruby​​的一个较新的特性,我不知道这些库对它有多成熟。 最佳答案 您是正确的,因为默认的CRuby解释器一次只执行一个线程(其他基于C的动态语

ruby-on-rails - "Private"Rake 任务与 Rails 环境

我知道我可以使用以下命令调用子任务列表并让每个子任务都利用我项目的Rails环境:task:main_task=>[:sub_task1,:sub_task2]doendtask:sub_task1=>:environmentdoModel1.some_class_methodendtask:sub_task2=>:environmentdoModel2.some_class_methodend我的问题是:main_task中是否有任何方法可以传递:environment,这样我就不必在每个子任务中显式地放置它?有没有办法让子任务被认为是“私有(private)的”?也就是说,我不希望

ruby - Phusion passenger 中的多个请求是否在各自的线程中运行?

我有一个使用Phusionpassenger+Apache网络服务器部署的RubyonRails应用程序。每个请求是否都在由PhusionPassenger生成的自己的线程中运行? 最佳答案 Passenger(以及大多数其他应用程序服务器)每个线程运行不超过一个请求。通常每个进程也只有一个线程。来自PhusionPassengerdocs:PhusionPassengersupportstwoconcurrencymodels:process:single-threaded,multi-processedI/Oconcurrenc

Ruby 一次只创建 3 个线程

我正在尝试运行500个客户端同时向服务器发送一些请求以进行负载测试。客户端又是一个ruby​​程序。听起来微不足道。但是我遇到了ruby​​线程的奇怪问题。我的代码看起来像这样-n=10n.timesdoThread.newdo`calc`endend代码是示例。我只是想从命令行运行calc命令(如果您在Windows以外的平台上尝试此代码,请将其替换为在您的命令行或shell上运行的一些命令)。稍后将替换为“rubymy_client.rb”,并且n的值将设置为500(或其他值)。我在这里面临的问题是,无论我想创建多少个线程,一次只能创建3个线程。也就是说只有3个计算窗口同时打开。其

ruby - 如何在 Ruby Net::HTTP 中实现 cookie

那是我的代码。现在我需要向主机发送一个cookie,但我找不到解决方案。defget_network_file(url=nil)beginhttp=Net::HTTP.new(@service_server,80)resp,data=http.get(url,{"Accept-Language"=>@locale})ifresp.code.to_i!=200RAILS_DEFAULT_LOGGER.error"***returncode!=200.code=#{resp.code}"return""endrescueException=>excRAILS_DEFAULT_LOGGER.

ruby-on-rails - Unicorn.rb 配置取决于环境

我在config/unicorn.rb中有一行看起来像这样:working_directory"/SomePath/Web\Development/Rails/learning"但是在生产环境中,需要不同的路径。我想尽可能多地保留源代码控制(还没有放弃任何东西)。有没有办法根据环境设置working_directory? 最佳答案 您尝试如何访问RAILS_ENV或RACK_ENV?它应该通过“ENV”就像...ENV['RAILS_ENV']……或者……ENV['RACK_ENV']当您将“-E”标志传递给unicorn时,一个或